(function () {
  // 定义父类 Animal
  class Animal {
    name: string;
    age: number;

    constructor(name: string, age: number) {
      this.name = name;
      this.age = age;
    }
    
    sayHello() {
      console.log(`我是${this.name}今年${this.age}岁`);
    }
  }

  // 定义子类 Dog 继承 Animal
  class Dog extends Animal {
    // 添加子类独有的属性
    color: string;

    constructor(naem: string, age: number, color: string) {
      super(naem, age); // 调用父类的构造函数
      this.color = color;
    }

    // 重写父类中的方法
    sayHello() {
      console.log(`我是${this.name}今年${this.age}岁,我的颜色是${this.color}`);
    }

    // 子类独有的方法
    run() {
      console.log("小狗跑得快！！");
    }
  }

  const dog = new Dog("旺财", 2, "黑色");
  console.log(dog);
  dog.sayHello();
  dog.run();
})();
